//
//  KTSDK.h
//  KTSDK
//
//  Created by linkin on 2022/2/9.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "KTConfig.h"

NS_ASSUME_NONNULL_BEGIN


typedef enum : NSUInteger {
    KTIncentiveVideoEvent_onAdLoad = 1000, //广告加载成功
    KTIncentiveVideoEvent_onVideoCached, //视频素材缓存成功
    KTIncentiveVideoEvent_onAdShow, //广告页面展示
    KTIncentiveVideoEvent_onReward, //广告激励发放
    KTIncentiveVideoEvent_onAdClick, //广告被点击
    KTIncentiveVideoEvent_onVideoComplete, //广告播放完毕
    KTIncentiveVideoEvent_onAdClose, //广告被关闭
    KTIncentiveVideoEvent_onError, //广告出错，错误详情请查看 code 和 messag
} KTIncentiveVideoEvent;

typedef void(^KTSetUIBlock)(BOOL isfinish);

typedef void(^KTReturnViewBlock)(UIScrollView *scrollView);

typedef void(^KTRefreshBlock)(void);

@protocol KTSDKDelegate <NSObject>
@optional
/**
 第三方需要支持的回调
 */
- (void)handleEventInfo:(KTPageInfo *)info;
@end

@interface KTSDK : NSObject
/**
 注册sdk，传入userid，promotionRatio 分佣比例， appid
 */
+ (void)registerAppConfig:(KTConfig *)config withDelegate:(id<KTSDKDelegate>)delegate;
/**
 更新用户信息 (登录 退出登录时调用)
 */
+ (void)updateUserInfo:(NSString *)userId withPromotionRatio:(NSNumber *)promotionRatio;


/**
 拉取基本配置信息
 */
+ (void)loadBlock:(KTSetUIBlock)block;
/**
 打开活动界面
 */
+ (void)openWebViewPageWithUrl:(NSString *)url;

/**
 打开钱包页面
 */
+ (void)openWalletPage;
/**
 打开搜索界面
 */
+ (void)openSearchPage;

/**
 打开搜索界面
 keyword : 搜索关键词，当为空时，只跳转至搜索界面，类似+ (void)openSearchPage;
 toSearch : YES 直接去搜索， NO：将关键词放入搜索页面输入框
 */
+ (void)openSearchPageWithKeyword:(NSString *)keyword toSearch:(BOOL)toSearch;
/**
 打开我的返现页面
 */
+ (void)openRebatePage;
/**
 打开订单列表页面
 */
+ (void)openOrderPage;
/**
 打开我的收益界面
 */
+ (void)openProfitPage;

/**
 获取版本号
 */
+ (NSString *)getVersion;

/**
 返回双列商品列表组件
 */
+ (UIView *)createGoodsAssemblyView;

/**
 获取搜索关键词
 */
+ (NSArray *)gainSearchKeywordsList;

/**
 首页
 */
+ (UIView *)gainHomePageViewBlcok:(KTReturnViewBlock)viewBlock;

/**
 刷新首页
 */
+ (void)refreshHomePageWithBlock:(KTRefreshBlock)block;
/**
获得首页活动区
 */
+ (UIView *)gainHomeActivityView;
/**
 激励视频回调
 */
+ (void)incentiveViewCallbackEvent:(KTIncentiveVideoEvent)event withMsg:(NSString *)msg withCode:(int)code withData:(id)data;

@end

NS_ASSUME_NONNULL_END
